package nonmerci.pioche;
import nonmerci.elements.Carte;
import nonmerci.elements.CarteFactory;
import nonmerci.elements.CarteFactoryImpl;
import static org.mockito.Mockito.*;


import org.junit.Before;
import org.junit.Test;
import org.junit.Assert;

public class TestPioche {
	
	Tas tas;
	Pioche pioche;
	
	@Before
	public void setUp(){
	    tas = mock(Tas.class) ;
	    pioche = new PiocheImpl(tas) ;
	}

	@Test 
	    public void testCartePiocheRetourneLaCarte() throws Exception{
		Carte carteDeTest = mock(Carte.class) ;
	    when(tas.enlever()).thenReturn(carteDeTest) ;
	    Carte carteRetournee = pioche.retournerCarte();
	    Assert.assertEquals(carteRetournee, carteDeTest) ;
	}

	@Test(expected=TasDeCarteVideException.class)
    public void testCartePiocheRetourneToutesLesCartes() throws TasDeCarteVideException{
	CarteFactory factCarte = new CarteFactoryImpl();
	TasFactory factTas = new TasFactoryImpl(factCarte) ;
	PiocheFactory factPioche = new PiocheFactoryImpl(factTas);
    Pioche pioche = factPioche.create();
    for(int i=0; i< 34 ; i++)
    {   
    	Carte carte = pioche.retournerCarte();
          System.out.println(carte.getValeur());
    }
    	  
}

	

}
